Computer systems typically utilize some type of non-volatile data storage. For example, computer systems may have multiple storage devices, such as one or more hard drives, solid state drives, etc. When multiple storage devices are used, they can be arranged in various ways to provide certain levels of resiliency. Data storage devices are susceptible to physical failures, and fault tolerant techniques can be employed to avoid or minimize the impact of such failures.
In some examples, physical disk drive components may be combined into one or more logical units to provide data redundancy and performance improvement. Data may also be distributed across the drives depending on the desired level of redundancy, performance, reliability, availability, and capacity. Different levels of resiliency can be achieved, for example, by different mirroring schemes or parity schemes.
Mirroring is the replication of logical disk volumes onto separate physical hard disks to provide redundancy. A mirrored volume is a logical representation of separate volume copies. Resiliency can be achieved by a mirroring scheme that maintains two copies of data, where the different copies are on one or more different device arrangements. More resiliency can be achieved by having three copies of data on three different device arrangements. The first example can tolerate a single device failure while the second example could tolerate two device failures.
Alternatively, various parity schemes, can be used to achieve resiliency. In some examples, a parity drive may be implemented to provide resilience/redundancy. One way to implement parity is to use the exclusive (XOR) function. In such an implementation, the XOR may be performed for data to be backed, and the XOR may be written to the parity drive/volume. If a drive fails, the XOR of the remaining drive and the parity drive can be taken to recover the data on the failed drive. Parity schemes use less disk space than triple mirroring schemes, but may have lower levels of performance because of the need to perform the parity function, as well as other administrative tasks.
It is with respect to these and other considerations that the disclosure made herein is presented. The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.